/**
 * 字节面试真题：
 * 删除字符串中出现次数 >= 2 次的相邻字符
 *
 * 输入："abbbaca"
 * 输出："ca"
 * 解释："abbbaca" => "aaca"=>"ca"
 */

function removeDuplicates(s: string) {
	const stack: string[] = []
	let top,
		next,
		i = 0

	while (i < s.length) {
		top = stack[stack.length - 1]
		next = s[i]
		if (next === top) {
			// 字符串中出现了相邻字符
			// 1. 移除栈顶字符
			// 2. 移动指针, 指向下一个不同的字符
			stack.pop()
			while (s[i] === top) {
				i++
			}
		} else {
			stack.push(next)
			i++
		}
	}
}
